package com.woniuxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.entity.AllArticle;
import com.woniuxy.entity.DTO.ArticleQueryDTO;
import com.woniuxy.util.PageResult;

import java.util.List;
import java.util.Map;


/**
 * @Author pml
 * @Date 2025/7/16 10:05
 * @Description 帖子服务接口
 * 定义帖子相关的业务方法，继承IService获得基础CRUD能力
 */
public interface IArticleService extends IService<AllArticle> {
    /**
     * 分页多条件查询帖子列表
     * 相比用户列表查询增加了状态、话题等帖子特有查询条件
     * @param queryDTO 查询条件和分页参数
     * @return 分页结果对象，包含帖子列表和分页信息
     */
    PageResult<AllArticle> getArticleList(ArticleQueryDTO queryDTO);

    /**
     * 更新帖子状态（审核功能）
     * 帖子管理特有功能，用于处理内容审核流程
     * @param id 帖子ID
     * @param status 新状态（1-待审核 2-已发布 3-审核驳回 4-已删除）
     * @return 是否更新成功
     */
    boolean updateArticleStatus(Long id, Integer status);

    // 新增统计方法
    long countPublishedArticles();
    long sumTotalViewCount();
    List<Map<String, Object>> getPublishTrendByDate();
}
